﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;

namespace Ocean.His.MedicalInsurance
{
    /// <summary>
    /// 自费病人就医费用明细查询
    /// </summary>
    [DataContract]
    public class SI4208Data
    {

        /// <summary>
        /// 人员证件类型
        /// 参数类型：字符型
        /// 参数长度：6
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "psn_cert_type")]
        public string PsnCertType { get; set; }

        /// <summary>
        /// 证件号码
        /// 参数类型：字符型
        /// 参数长度：600
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "certno")]
        public string Certno { get; set; }

        /// <summary>
        /// 人员姓名
        /// 参数类型：字符型
        /// 参数长度：50
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "psn_name")]
        public string PsnName { get; set; }

        /// <summary>
        /// 开始时间
        /// 参数类型：日期型
        /// 参数长度：
        /// 代码标识：
        /// 是否必填：
        /// yyyy-MM-dd
        /// </summary>
        [DataMember(Name = "begntime")]
        public string Begntime { get; set; }

        /// <summary>
        /// 结束时间
        /// 参数类型：日期型
        /// 参数长度：
        /// 代码标识：
        /// 是否必填：
        /// yyyy-MM-dd
        /// </summary>
        [DataMember(Name = "endtime")]
        public string Endtime { get; set; }

        /// <summary>
        /// 医疗类别
        /// 参数类型：字符型
        /// 参数长度：6
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "med_type")]
        public string MedType { get; set; }

        /// <summary>
        /// 医疗总费用
        /// 参数类型：数值型
        /// 参数长度：16,2
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "medfee_sumamt")]
        public decimal MedfeeSumamt { get; set; }

        /// <summary>
        /// 电子票据号码
        /// 参数类型：字符型
        /// 参数长度：50
        /// 代码标识：
        /// 是否必填：
        /// 如果是纸质发票则填写纸质发票号码
        /// </summary>
        [DataMember(Name = "elec_billno_code")]
        public string ElecBillnoCode { get; set; }

        /// <summary>
        /// 完成标志
        /// 参数类型：字符型
        /// 参数长度：6
        /// 代码标识：
        /// 是否必填：
        /// 费用明细和就诊信息上传完成后修改完成标志
        /// </summary>
        [DataMember(Name = "cplt_flag")]
        public string CpltFlag { get; set; }

        /// <summary>
        /// 当前页数
        /// 参数类型：数值型
        /// 参数长度：4
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "page_num")]
        public decimal PageNum { get; set; }

        /// <summary>
        /// 本页数据量
        /// 参数类型：数值型
        /// 参数长度：4
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "page_size")]
        public decimal PageSize { get; set; }


    }

    [DataContract]
    public class SI4208InputModel
    {
        [DataMember(Name = "input")]
        public SI4208Data Data { get; set; }
    }

    /// <summary>
    /// 自费病人就医费用明细查询
    /// </summary>
    public class SI4208RequestModel : SIBaseRequestModel
    {
        /// <summary>
        /// 交易输入
        /// </summary>
        [DataMember(Name = "input")]
        public SI4208InputModel Input { get; set; }

        public SI4208RequestModel(MedicalInsuranceOption medicalInsuranceOption) : base(medicalInsuranceOption)
        {
            Infno = "4208";
        }
    }
}
